Python神经网络回归分析建模

您所在的位置:网站首页 非线性预测 神经网络模型有哪些 Python神经网络回归分析建模

Python神经网络回归分析建模

2023-01-04 03:59| 来源: 网络整理| 查看: 265

神经网络可以解决较为复杂的非线性问题,如今在分类、回归等方面都有大量的应用,这里不介绍具体的原理了,下面近期是利用python的Keras包,进行神经网络回归的简单应用,记录一下,以后方便直接使用。

背景介绍

具体的业务场景就不介绍了,数据集为25个特征输入,1个输出的数据集,形状为8023*26,即共有8023个样本数据。搭建的神经网络共6层(计算神经网络层数时,只计算具有计算能力的层),其每层神经元个数(25,50,50,50,50,50,1)。

1、划分训练测试数据集

训练集、测试集一般划分比例多有7:3、8:2等,笔者是按8:2划分的。可借助train_test_split函数随机按比例划分。

x_train, x_test, y_train, y_test = train_test_split(x_data, y_data, test_size=0.2, random_state=33)

其中,test_size即为测试集比例,random_state为随机数种子,默认为False,设置此值能够保证在需要重复实验时,每次一组一样的随机数。

2、对数据进行标准化处理ss_x = StandardScaler() x_train = ss_x.fit_transform(x_train) x_test = ss_x.transform(x_test) ss_y = StandardScaler() y_train = ss_y.fit_transform(y_train.reshape(-1,1)) y_test = ss_y.transform(y_test.reshape(-1,1))

StandarScaler()对特征数据集进行标准化,fit_transform(),先Fit to data, then transform it,而transform()函数,在fit的基础上,进行标准化操作。

3、基于Keras建立多层回归神经网络model = keras.models.Sequential() model.add(Dense(50, input_dim=25, use_bias=True, kernel_initializer='RandomNormal', activation='relu',)) model.add(Dense(50, activation='relu')) model.add(Dense(50, activation='relu')) model.add(Dense(50, activation='relu')) model.add(Dense(50, activation='relu')) model.add(Dense(1,)) model.compile(optimizer='adam', loss=tf.keras.losses.MeanAbsoluteError()) model.fit(x_train, y_train, epochs=1000, verbose=1)

以上是建立的多层神经网络,具体的一些方法可查官方文档,此处不在赘述。这里讲一下训练网络时,epochs,batchsize的含义,epochs是迭代次数的意思,1个epoch等于使用训练集中的全部样本训练一次;batchsize,即每次训练在训练集中取batchsize个样本训练。

4、对神经网络进行评价predict_train = (ss_y.inverse_transform(model.predict(x_train))).ravel() actual_train = (ss_y.inverse_transform(y_train)).ravel() train_mae = mean_absolute_error(actual_train, predict_train) predict_test = (ss_y.inverse_transform(model.predict(x_test))).ravel() actual_test = (ss_y.inverse_transform(y_test)).ravel() test_mae = mean_absolute_error(actual_test, predict_test)

对回归神经网络进行评价,一般多用的指标有MAE、MRE、MSE等,以上是根据MAE对回归结果进行评价,效果良好。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3